/**
 * 冒泡排序，进行n轮循环，每一次循环都从0比较到尾部，已经排到末尾的不参与排序
 * 每一轮循环的次数是在减少的l - i(外层循环次数)，每一次循环都是用相邻位置比较大小，交换位置，直到把最大的放在末尾
 * @param {Array} arr 
 */
var bubbleSort = function(arr) {
  let l = arr.length;
  let i = 0;
  let j;
  let flag = 10;
  for (i = 0; i < l; i++) {
    if(flag === false) {
      console.log('已经排序好了，不需要再进行循环', i);
      break;
    }
    flag = false;
    for (j = 0; j < l - i; j++) {
      const e1 = arr[j];
      const e2 = arr[j+1]
      // 调换位置
      if(e1 > e2) {
        arr[j+1] = e1;
        arr[j] = e2;
        flag = true;
      }
    }
  }
  console.log(arr)
}

bubbleSort([5,2,4,3,1,0,7, 1, 2,10]);